Any discussion of the background art throughout the specification should in no way be considered as an admission that such art is widely known or forms part of common general knowledge in the field.
The quality of Internet Applications such as VoIP applications often rely heavily on an effective packet switched communications network. The nature of a packet switched network is that packets arrived in a temporally spread manner, with occasional packet losses. A jitter buffer is normally provided to ‘regularise’ the packet output.
By way of example, such an arrangement is illustrated schematically in FIG. 1, wherein a computer and communications device 2 is utilised to run a VoIP application 3 for a user 6 to undertake internet based voice or video conferencing over the Internet. Packets are received from the internet 5 and placed in a jitter buffer 4 on arrival, for forwarding to the VoIP Application 3 on demand. The VoIP application is responsible for accessing packets from the jitter buffer and transcoding the packet information into a suitable output format.
In the example VoIP system, jitter comes in many forms, such as network jitter, device scheduling jitter, etc. Conventional VoIP jitter buffer algorithms often mainly deal with network jitter while leaving other types of jitter unhandled.
For various non-network jitter, of particular interest is the ‘fetch’ or pull jitter that occurs when the audio subsystem pulls packets from the jitter buffer at variable time intervals. Pull jitter may arise due to a number of reasons. For example, rebuffering output audio to interface with audio devices operating at different sample rates; audio device pull timing jitter; operating system scheduling etc.
By way for further example, Jitter (inter-pulling time, IPT) plots for four traces are shown in FIG. 2 to FIG. 5. There is a big jump of IPT that is close to 900 ms in the plot of FIG. 2. Statistically the plots were found to have the following mean and standard deviations:
FIG. 2 - S2FIG. 3 - S2 2FIG. 4 - S3FIG. 5 - S3 2Mean IPT (ms)20.017719.997619.999019.8964Std IPT (ms)8.587311.27176.62266.8227
When pull jitter is unaccounted for, a jitter buffer is likely to be sub optimal and could become overflowed or underflowed due to slower or faster pull rate, respectively. Ideally, a system and method which can handle multiple different sources of jitter is required.